package com.wutu.nbyjk8.socket;

import org.springframework.stereotype.Component;

/**
 * @Author: Addons
 * @Date: 2022-02-25 18:33
 * @Desc:
 */
//@ServerEndpoint("/testSocket") //WebSocket客户端建立连接的地址
@Component
public class WebSocketEndPoint {
    /*
     *//**
     * 存活的session集合（使用线程安全的map保存）
     *//*
        private static Map<String, Session> livingSessions = new ConcurrentHashMap<>();

        *//**
     * 建立连接的回调方法
     *
     * @param session  与客户端的WebSocket连接会话
     * @param userName 用户名，WebSocket支持路径参数
     *//*
        @OnOpen
        public void onOpen(Session session, @PathParam("userName") String userName) {
                livingSessions.put(session.getId(), session);
                sendMessageToAll(userName + " 加入聊天室");
        }

        *//**
     * 收到客户端消息的回调方法
     *
     * @param message 客户端传过来的消息
     * @param session 对应的session
     *//*
        @OnMessage
        public void onMessage(String message, Session session, @PathParam("userName") String userName) {
                sendMessageToAll(userName + " : " + message);
        }


        *//**
     * 发生错误的回调方法
     *
     * @param session
     * @param error
     *//*
        @OnError
        public void onError(Session session, Throwable error) {
                System.out.println("发生错误");
                error.printStackTrace();
        }

        *//**
     * 关闭连接的回调方法
     *//*
        @OnClose
        public void onClose(Session session, @PathParam("userName") String userName) {
                livingSessions.remove(session.getId());
                sendMessageToAll(userName + " 退出聊天室");
        }


        *//**
     * 单独发送消息
     *
     * @param session
     * @param message
     *//*
        public void sendMessage(Session session, String message) {
                try {
                        session.getBasicRemote().sendText(message);
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

        *//**
     * 群发消息
     *
     * @param message
     *//*
        public void sendMessageToAll(String message) {
                livingSessions.forEach((sessionId, session) -> {
                        sendMessage(session, message);
                });
        }*/

}
